/*
 * sgc_inthash.h
 *
 *  Created on: 2011-7-5
 *      Author: rendong
 */

#ifndef SGC_INTHASH_H_
#define SGC_INTHASH_H_

// hash 节点
typedef struct _sgc_inthash_table_item_s sgc_inthash_table_item_t;

struct _sgc_inthash_table_item_s
{
	int key;
	int hash;
	void *value;
	sgc_inthash_table_item_t *next;
};

// hash table 结构
typedef struct _sgc_inthash_table_s
{
	sgc_inthash_table_item_t ** items;
	size_t nlimit;
	size_t size;
} sgc_inthash_table_t;

/**
 * 初始化hash table
 */
void sgc_inthash_init(sgc_inthash_table_t * hashtable, size_t capacity);
/**
 * 向hash表中加入数据
 * @return 键存在，返回1， 否则返回0
 */
int sgc_inthash_put(sgc_inthash_table_t * hashtable, int key, void *value);
/**
 * 获取数据
 */
void* sgc_inthash_get(sgc_inthash_table_t * hashtable, int key);
/**
 * 删除
 */
void sgc_inthash_del(sgc_inthash_table_t * hashtable, int key);

#endif /* SGC_INTHASH_H_ */
